import { ref, computed } from 'vue';
import { useRouter } from 'vue-router';
import { ChatItem, INITIAL_MESSAGES } from '../types';

/**
 * 聊天逻辑 Hook
 * 集中管理聊天界面的业务逻辑
 */
export function useChatLogic() {
  // 路由
  const router = useRouter();
  
  // 响应式状态
  const messageList = ref<ChatItem[]>(INITIAL_MESSAGES);
  const inputText = ref('');
  
  // 计算属性
  const lastMessage = computed(() => 
    messageList.value.length > 0 ? messageList.value[messageList.value.length - 1] : null
  );

  const secondLastMessage = computed(() => 
    messageList.value.length > 1 ? messageList.value[messageList.value.length - 2] : null
  );
  
  // 导航方法
  const navigateTo = (path: string) => {
    router.push({ path });
  };
  
  /**
   * 处理AI回复
   * @param message 用户输入的消息
   */
  const generateAIReply = (message: string) => {
    if (!message) return;
    
    const lowerMessage = message.toLowerCase();
    
    // 1. 检查是否是处理充电桩业务
    if (lowerMessage.includes('请问本次用电申请是否涉及充电桩业务')) {
      messageList.value.push({ id: 2, type: 'info', cont: '办理新装' });
      messageList.value.push({
        id: 1,
        type: 'link',
        cont: '您需要办理的用电地址是什么呢，您可以：1.拍取产权证明，系统自动识别获取。2.直接输入地址发送给小E。',
        name: '产权证明',
        des: '光线充足情况下，请用手机相册清晰上传房产证正页及附属页。'
      });
      return;
    }
    
    // 2. 处理图片上传后的逻辑
    if (lowerMessage.includes('img')) {
      inputText.value = '江苏省XXX市XXX县XXX镇XXX组8号';
      messageList.value.push({
        id: 1,
        type: 'info',
        cont: '识别到您需办理的用电地址为：江苏省XXX市XXX县XXX镇XXX组8号。如无误请直接点击发送按钮，如有误请修改后点击发送按钮。'
      });
      return;
    }
    
    // 3. 处理地址确认
    const secondLast = secondLastMessage.value;
    if (secondLast?.cont && secondLast.cont.includes('误请直接点击发送按钮')) {
      messageList.value.push({ 
        id: 1, 
        type: 'buttom', 
        cont: '经查询，您名下无其他用电户，是否在这个用电地址给您办理开户业务？' 
      });
      return;
    }
    
    // 4. 处理其他用电户回复
    if (lowerMessage.includes('下无其他用电户')) {
      messageList.value.push({ id: 2, type: 'info', cont: '是' });
      messageList.value.push({ id: 1, type: 'buttom', cont: '好的，请问您是户主本人吗？' });
      return;
    }
    
    // 5. 处理户主确认
    if (lowerMessage.includes('请问您是户主本人')) {
      messageList.value.push({ id: 2, type: 'info', cont: '是' });
      messageList.value.push({ 
        id: 1, 
        type: 'buttom1', 
        cont: '您的用电用途是什么？', 
        btn: '接电用途' 
      });
      return;
    }
    
    // 6. 处理用电用途
    if (lowerMessage.includes('用电用途是什')) {
      navigateTo('/connectionUse');
      return;
    }
    
    // 7. 处理居民照明
    if (lowerMessage.includes('居民照明')) {
      messageList.value.push({ 
        id: 1, 
        type: 'buttom1', 
        cont: '您希望的上门时间是？', 
        btn: '预约时间选择' 
      });
      return;
    }
    
    // 9. 处理年份
    if (lowerMessage.includes('2025')) {
      messageList.value.push({
        id: 1,
        type: 'buttom',
        cont: '办理该理业务需获取您的身份证件证明材料，请问是否从您的认证用户信息中自动获取证件信息?'
      });
      return;
    }
    
    // 10. 处理身份证件
    if (lowerMessage.includes('办理该理业务需获取您的身份证件证明材')) {
      messageList.value.push({ id: 2, type: 'info', cont: '是' });
      messageList.value.push({ id: 1, type: 'info', cont: '好的，已经自动获取您的身份证件。' });
      messageList.value.push({
        id: 1,
        type: 'buttom1',
        cont: '好的，接下来进行流程最后一步，签署供电合同，请点击以下按钮进行查看签署',
        btn: '签署供电合同'
      });
      return;
    }
    
    // 11. 处理最后一步
    if (lowerMessage.includes('接下来进行流程最后一步')) {
      navigateTo('/contract');
      return;
    }
    
    // 12. 处理签署完成
    if (lowerMessage.includes('已签署')) {
      messageList.value.push({ 
        id: 1, 
        type: 'info', 
        cont: '好的，您已完成新装业务申请，可在进度查询页面进行工单进度查询。' 
      });
      return;
    }
  };
  
  /**
   * 发送消息
   * @param message 要发送的消息
   */
  const sendMessage = (message: string) => {
    if (!message.trim()) return;
    
    messageList.value.push({ id: 2, type: 'info', cont: message });
    generateAIReply(message);
  };
  
  /**
   * 处理图片上传
   * @param imageData 图片数据
   */
  const handleImageUpload = (imageData: string) => {
    messageList.value.push({ id: 2, type: 'img', img: imageData });
    generateAIReply('img');
  };
  
  // 外部跳转
  const toHome = () => {
    window.location.href = 'https://vzdlyz.axshare.com/?id=syvoni&p=i%E5%9B%BD%E7%BD%91%E9%A6%96%E9%A1%B5-%E4%BD%9C%E4%B8%9A%E4%BA%BA%E5%91%98&g=1';
  };
  
  return {
    messageList,
    inputText,
    lastMessage,
    secondLastMessage,
    generateAIReply,
    sendMessage,
    handleImageUpload,
    navigateTo,
    toHome
  };
} 